
const app = getApp()
const util = require('../../utils/util.js')
import {Date2} from '../../utils/date2.js'

//该页和个人信息页的区别是： 个人信息页主要存储个人信息相关（不能编辑性别和排行），此页主要存储关系编辑相关。
Page({

  /**
   * 页面的初始数据
   */
  data: {
    family: 0, //所在家族
    target_person: 0, //当前人的id, 如果取0表示新增人员
    target_person_name: '',

    //编辑信息
    input_name: '',
    input_sex: 1,  //性别
    input_nick: '',
    input_birthday: '',  //数据库格式
    input_birthday_show: '', //展示格式
    input_phone: '',

    priority_arr: [],  //可选择的兄弟间排行, 中文表示
    priority_index: 0  //初始选择的priority_arr中的下标
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      family: parseInt(options.family),
      target_person: parseInt(options.target_person),
      target_person_name: decodeURI(options.target_person_name)
    })
    wx.setNavigationBarTitle({
      title: `编辑${this.data.target_person_name}的信息`,
    })
    this.setData({
      input_sex: -1
    })

    app.httpRequest('get_relation_person_info', {
      family: this.data.family,
      target_person: this.data.target_person
    }, res => {
      console.log('get_relation_person_info succ: ', res)
      //性别无法编辑
      this.setData({
        input_name: res.info.name,
        input_sex: res.info.sex,
        input_nick: res.info.nick,
        input_birthday: res.info.birthday,
        input_phone: res.info.phone,
      })
      let date2 = new Date2()
      let ok = date2.ParseDbDateStr(res.info.birthday)
      if (ok) {
        this.setData({
          input_birthday_show: date2.FormatShowDate()
        })
      }

      let arr = []
      for (let i = 0; i < res.can_select_priorities.length; i++) {
        arr.push(util.priority2Chn(res.can_select_priorities[i]))
      }
      this.setData({
        priority_arr: arr,
        priority_index: res.info.priority_index
      })
      
    }, res => {
      console.log('get_relation_person_info failed: ', res)
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  bindNameInput(e) {
    this.setData({
      input_name: e.detail.value
    })
  },

  bindSexInput(e) {
    this.setData({
      input_sex: e.detail.value
    })
  },

  bindPriorityChange(e) {
    //重新选择排名
    console.log('select priority: ', e.detail.value)
    this.setData({
      priority_index: e.detail.value
    })
  },

  bindNickInput(e) {
    this.setData({
      input_nick: e.detail.value
    })
  },

  bindPhoneInput(e) {
    this.setData({
      input_phone: e.detail.value
    })
  },

  bindTapBirthday(e) {
    console.log("click birthday")
    //传入数据库时间字符串

    let dbDateStr = ''
    wx.navigateTo({
      url: '../family/edit_date?date=' + dbDateStr,
    })
  },

  editDateCallback(date2) {
    this.setData({
      input_birthday: date2.FormatDbDateStr(),
      input_birthday_show: date2.FormatShowDate()
    })
  },

  bindTapBack() {
    wx.navigateBack({
      delta: 0,
    })
  },

  bindTapSave() {
    let name = this.data.input_name.trim()
    if (name.length == 0) {
      app.showTip('姓名不能为空')
      return
    }
    let nick = this.data.input_nick.trim()
    let phone = this.data.input_phone.trim()
    let birthday = this.data.input_birthday
    let priority = util.priority2Num(this.data.priority_arr[this.data.priority_index])

    //调用保存接口
    app.httpRequest('edit_relation_person_info', {
      family: this.data.family,
      target_person: this.data.target_person,
      name: name,
      nick: nick,
      birthday: birthday,
      phone: phone,
      priority: priority
    }, res => {
      console.log('edit_relation_person_info succ: ', res)

      //返回
      let pages = getCurrentPages()  //获取当前页面js里面的pages里的所有信息。
      let prevPage = pages[pages.length - 2]  //prevPage 是获取上一个页面的js里面的pages的所有信息。 -2 是上一个页面，-3是上上个页面以此类推。
      prevPage.refreshPersons(res)
      
      app.showTip('保存成功')
      //wx.navigateBack()

    }, res => {
      console.log('edit_relation_person_info failed: ', res)
    })
  }
})